﻿using System.Collections.Generic;

namespace Cms.Domain.RepositoryInterfaces
{
    public interface ISiteRepository
    {
        IList<Site> GetSites();

        Site GetSite(int id);

        void SaveSite(Site site);

        void DeleteSite(int id);

        MasterTemplate GetMasterTemplate(int id);

        DetailTemplate GetDetailTemplate(int id);

        Stylesheet GetStylesheet(int id);

        void DeleteMasterTemplate(int id);

        void DeleteDetailTemplate(int id);

        IList<SourceCodeVersion> GetSourceCodeWithReferencesTo(string virtualPath, int siteId);

        Application GetApplication(int id);

        void DeleteApplication(Application app);

        void SaveApplication(Application app);

        Menu GetMenu(int id, int siteId);

        void DeleteMenu(Menu menu);

        void SaveMenu(Menu menu);

        IList<Folder> GetRootFolders(Site site);

        IList<Folder> GetRootFoldersForExplorer(Site site);

        IList<MediaFolder> GetRootMediaFolders(Site site);
    }
}